// pages/mine/question/question.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs: ['首页', '健康生活', '咨询', '商城'],
    activeTab: 0,
    faqData: [
      [ // 首页
        { question: '如何使用健享生活小程序？', answer: '进入小程序后，按照首页指引操作即可。', open: false },
        { question: '首页有哪些快捷入口？', answer: '首页有健康咨询、文章资讯、中医药养生资讯等快捷入口。', open: false },
        { question: '如何查找我需要的功能？', answer: '可通过首页导航栏或搜索功能查找。', open: false },
        { question: '首页的健康资讯如何更新？', answer: '健康资讯会定期自动更新，无需手动刷新。', open: false },
        { question: '首页卡片顺序可以调整吗？', answer: '暂不支持自定义首页卡片顺序。', open: false }
      ],
      [ // 健康生活
        { question: '如何预约健康课程？', answer: '在健康生活页面选择课程并点击预约即可。', open: false },
        { question: '健康打卡如何操作？', answer: '点击健康打卡，按提示完成每日打卡。', open: false },
        { question: '如何查看我的健康数据？', answer: '在健康生活页面点击"我的健康"即可查看。', open: false },
        { question: '健康活动报名后如何取消？', answer: '在活动详情页点击取消报名即可。', open: false },
        { question: '健康积分如何获取？', answer: '参与健康打卡、课程、活动等可获得积分。', open: false }
      ],
      [ // 咨询
        { question: '如何发起健康咨询？', answer: '在咨询页面通过咨询与人工智能大模型填写问题即可。', open: false },
        { question: '咨询医生后多久能收到回复？', answer: '一般会实时收到大模型给出的回复。', open: false },
        { question: '咨询记录在哪里查看？', answer: '在咨询页面下方可查看历史咨询记录。', open: false },
        { question: '咨询内容会被保密吗？', answer: '您的咨询内容仅医生可见，平台严格保密。', open: false },
        { question: '可以追问医生吗？', answer: '在医生回复后，您可在原咨询下继续追问。', open: false }
      ],
      [ // 商城
        { question: '商城如何下单购买商品？', answer: '选择商品后点击"立即购买"并完成支付即可。', open: false },
        { question: '商城支持哪些支付方式？', answer: '支持微信支付等主流支付方式。', open: false },
        { question: '订单如何查看和管理？', answer: '在商城页面点击"我的订单"可查看和管理订单。', open: false },
        { question: '商品有售后服务吗？', answer: '大部分商品支持7天无理由退换货，具体以商品详情为准。', open: false },
        { question: '如何联系客服？', answer: '可在商城页面点击"联系客服"获取帮助。', open: false }
      ]
    ],
    faqList: [],
    searchValue: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({ faqList: this.data.faqData[0] });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  onTabChange(e) {
    const index = Number(e.currentTarget.dataset.index);
    this.setData({
      activeTab: index,
      searchValue: '',
      faqList: this.data.faqData[index]
    });
  },

  toggleDetail(e) {
    const index = e.currentTarget.dataset.index;
    const faqList = this.data.faqList;
    faqList[index].open = !faqList[index].open;
    this.setData({ faqList });
  },

  onSearchInput(e) {
    const value = e.detail.value.trim();
    const { faqData } = this.data;
    if (!value) {
      // 搜索为空，恢复当前tab
      this.setData({
        searchValue: '',
        faqList: faqData[this.data.activeTab]
      });
      return;
    }
    // 遍历所有tab，查找匹配项
    let matchedTabIndex = -1;
    let matchedList = [];
    for (let i = 0; i < faqData.length; i++) {
      const filtered = faqData[i].filter(item =>
        item.question.includes(value) || item.answer.includes(value)
      );
      if (filtered.length > 0 && matchedTabIndex === -1) {
        matchedTabIndex = i;
        matchedList = filtered;
      }
    }
    if (matchedTabIndex !== -1) {
      this.setData({
        searchValue: value,
        activeTab: matchedTabIndex,
        faqList: matchedList
      });
    } else {
      // 没有匹配项，显示空
      this.setData({
        searchValue: value,
        faqList: []
      });
    }
  }
})